package com.deyuanyun.pic.integalz.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.deyuanyun.pic.business.controller.dto.PipeLineNewTaskVO;
import com.deyuanyun.pic.ctrl.controller.dto.exinsp.ExinspCipsDcvgDTO;
import com.deyuanyun.pic.ctrl.controller.dto.exinsp.ExinspPcmAcvgDTO;
import com.deyuanyun.pic.ctrl.domain.ExinspOclpoint;
import com.deyuanyun.pic.ctrl.domain.ExinspTask;
import com.deyuanyun.pic.integalz.controller.dto.ExinspAcMiorRecordVO;
import com.deyuanyun.pic.integalz.controller.dto.ExinspCptestStationDTO;
import com.deyuanyun.pic.integalz.controller.dto.ExinspDcMiorRecordVO;
import com.deyuanyun.pic.integalz.controller.dto.ExinspOcgradeVO;
import com.deyuanyun.pic.integalz.controller.dto.IntegalzQueryVO;


/**
 * 外检测任务在一根管道上的各种计算服务
 * 
 * @author ChenKui
 *
 */
public interface PipeLineExternalTaskService {

    /**
     * 统计指定距离中最新外检任务对应的漏损点分布
     * @param
     * @return
     */
    List<ExinspOclpoint> queryExinspOclpointCount(@Param("query") IntegalzQueryVO query,@Param("exinspTaskList") List<PipeLineNewTaskVO> exinspTaskList);

    /**
     * 统计指定距离中最新外检任务对应的测试桩检测数据信息
     * @param query
     * @return
     */
    List<ExinspCptestStationDTO>  queryExinspCptestStationCount(@Param("query") IntegalzQueryVO query,@Param("exinspTaskList") List<PipeLineNewTaskVO> exinspTaskList);

    /**
     * 统计指定距离中最新外检任务对应的管道图层分级评价
     * @param query
     * @return
     */
    List<ExinspOcgradeVO> queryExinspOcgradeCount(@Param("query") IntegalzQueryVO query, @Param("exinspTaskList") List<PipeLineNewTaskVO> exinspTaskList);

    /**
     * 统计管道指定距离中最新任务对应的交流干扰监测记录
     * @param query
     * @param exinspTaskList
     * @return
     */
    List<ExinspAcMiorRecordVO> queryExinspAcMiorRecord(@Param("query") IntegalzQueryVO query, @Param("exinspTaskList") List<PipeLineNewTaskVO> exinspTaskList);

    /**
     * 统计管道指定距离中最新任务对应的直流干扰监测记录
     * @param query
     * @param exinspTaskList
     * @return
     */
    List<ExinspDcMiorRecordVO> queryExinspDcMiorRecord(@Param("query") IntegalzQueryVO query, @Param("exinspTaskList") List<PipeLineNewTaskVO> exinspTaskList);
    /**
     * 查询pcm、acvg
     * @param queryVO
     * @param exinspTaskList
     * @return
     */
    List<ExinspPcmAcvgDTO> queryExinspPcmAcvg(IntegalzQueryVO queryVO,List<PipeLineNewTaskVO> exinspTaskList);
    

    /**
     * 查询Cips、dcvg
     * @param queryVO
     * @param exinspTaskList
     * @return
     */
    List<ExinspCipsDcvgDTO> queryExinspCipsDcvg(IntegalzQueryVO queryVO,List<PipeLineNewTaskVO> exinspTaskList);
    
}
